/* 全局样式 */
html, body {
  margin: 0;
  padding: 0;
  font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 14px;
  color: #303133;
  background-color: #f5f7fa;
  height: 100%;
  width: 100%;
}

#app {
  height: 100%;
  width: 100%;
}

/* 滚动条样式 */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background: rgba(144, 147, 153, 0.3);
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: rgba(144, 147, 153, 0.5);
}

/* 卡片样式 */
.el-card {
  border-radius: 8px;
  border: none;
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05) !important;
  margin-bottom: 20px;
}

.el-card__header {
  padding: 15px 20px;
  border-bottom: 1px solid #ebeef5;
}

.el-card__body {
  padding: 20px;
}

/* 按钮样式 */
.el-button {
  font-weight: 500;
}

.el-button--primary {
  background-color: #409EFF;
  border-color: #409EFF;
}

.el-button--primary:hover,
.el-button--primary:focus {
  background-color: #66b1ff;
  border-color: #66b1ff;
}

/* 表格样式 */
.el-table {
  border-radius: 8px;
}

.el-table th {
  background-color: #f5f7fa;
  color: #606266;
  font-weight: 600;
}

/* 分页样式 */
.el-pagination {
  text-align: center;
  margin-top: 20px;
}

/* 标签样式 */
.el-tag {
  border-radius: 4px;
  margin-right: 5px;
}

/* 输入框样式 */
.el-input__inner {
  border-radius: 4px;
}

/* 下拉菜单样式 */
.el-select-dropdown {
  border-radius: 4px;
}

/* 日期选择器样式 */
.el-date-editor {
  border-radius: 4px;
}

/* 图标样式 */
.el-icon {
  vertical-align: middle;
}

/* 通用边距 */
.mt-10 {
  margin-top: 10px;
}

.mb-10 {
  margin-bottom: 10px;
}

.ml-10 {
  margin-left: 10px;
}

.mr-10 {
  margin-right: 10px;
}

.p-20 {
  padding: 20px;
}

/* 通用颜色 */
.text-primary {
  color: #409EFF;
}

.text-success {
  color: #67C23A;
}

.text-warning {
  color: #E6A23C;
}

.text-danger {
  color: #F56C6C;
}

.text-info {
  color: #909399;
}

/* 通用字体大小 */
.fs-12 {
  font-size: 12px;
}

.fs-14 {
  font-size: 14px;
}

.fs-16 {
  font-size: 16px;
}

.fs-18 {
  font-size: 18px;
}

.fs-20 {
  font-size: 20px;
}

.fs-24 {
  font-size: 24px;
}

/* 通用布局 */
.flex {
  display: flex;
}

.flex-column {
  flex-direction: column;
}

.justify-between {
  justify-content: space-between;
}

.justify-center {
  justify-content: center;
}

.align-center {
  align-items: center;
}

.flex-wrap {
  flex-wrap: wrap;
}

.flex-1 {
  flex: 1;
}

/* 通用阴影 */
.shadow-sm {
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05);
}

.shadow {
  box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.1);
}

.shadow-lg {
  box-shadow: 0 8px 24px 0 rgba(0, 0, 0, 0.15);
}

/* 通用圆角 */
.rounded-sm {
  border-radius: 4px;
}

.rounded {
  border-radius: 8px;
}

.rounded-lg {
  border-radius: 16px;
}

.rounded-full {
  border-radius: 9999px;
}

/* 通用过渡 */
.transition {
  transition: all 0.3s ease;
}

/* 通用悬停效果 */
.hover-shadow:hover {
  box-shadow: 0 8px 24px 0 rgba(0, 0, 0, 0.15);
  transform: translateY(-2px);
}

.hover-primary:hover {
  color: #409EFF;
}

/* 通用动画 */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.fade-in {
  animation: fadeIn 0.3s ease-in-out;
}

/* 响应式布局 */
@media (max-width: 768px) {
  .hide-on-mobile {
    display: none;
  }
}

@media (max-width: 992px) {
  .hide-on-tablet {
    display: none;
  }
}

@media (min-width: 993px) {
  .hide-on-desktop {
    display: none;
  }
}